Computing systems typically have the ability to process floating point numbers. A floating point number is often represented using a sign-mantissa-exponent format of:(−1)S*1.xxxx*2yyyy,where S is the sign, xxxx is the mantissa, and yyyy is the exponent. The floating point number is positive when S is 0 and negative when S is 1. The 1.xxxx is usually referred to as the “significand” of the floating point number. The sign and significand together create a “sign-magnitude” representation. The position to the left of the decimal point in the significand is called the “integer” bit. The integer bit can either be explicitly included in a floating point format or excluded. When the integer bit is excluded, it is called a “hidden” integer bit. For example, the Institute of Electrical and Electronics Engineers (IEEE) 754 floating point standard defines single precision and double precision floating point numbers having hidden integer bits. The size of the mantissa and the size of the exponent may vary depending on the type of precision used.
Conventional computing systems typically try to keep floating point numbers in a “normalized” format. The normalized format requires that the significand have a form of 1.xxxx. In other words, the significand has a single value of one to the left of the decimal point. When the significand has a form of 10.xxxx or 0.xxxx, the floating point number is said to have a “denormalized” format.
When two floating point numbers are added or subtracted, the floating point result may have a denormalized format. Normalization usually occurs, and the normalized result is then rounded. Rounding may also denormalize the floating point result, so renormalization occurs. During the normalization and renormalization operations, conventional computing systems may adjust the exponent of the result. A problem with conventional computing systems is that separate adders are often used to adjust the exponent of the result during the normalization and renormalization operations. A third adder is typically used to round the significand of the result during the rounding operation. As a result, three adders are usually needed to adjust the exponent and round the floating point result.